查看原文
其他

让汽车软件进入iPhone时代!

屠敏 CSDN 2021-08-26

从燃油版到新能源到自动驾驶,汽车行业迎来快速发展期。然而面对全新的数字化赛道,汽车制造商打破传统枷锁的契机何在?在此,本期《新程序员》采访到了镁佳科技CEO庄莉,邀请她分享汽车创新软件的筑造之路。


作者 | 屠敏
出品 | 

数字化时代已至。随着华为、百度、腾讯、苹果等科技巨头纷纷下场入局造车,过往成千上万个硬件零件通过集成一套软件代码的运行机制,让软件成为重新定义汽车的核心创新点之一,也由此让碎片化的汽车技术逐渐向“大一统”迈进。

不过,对于浸润在互联网生态中的传统汽车制造业而言,常用的互联网软件开发方式是否同样适用于智能网联汽车领域?面对匮乏的工具层,汽车行业又该如何拥抱数字化转型,带来更好的用户体验?在大数据上云的趋势下,我们该如何保障汽车更深层次的安全?我们不妨从镁佳科技CEO庄莉的观点中窥探一二。

镁佳科技CEO 庄莉

庄莉,她是著名96级清华大学计算机专业人,这一届从清华走出来的除了搜狗公司CEO王小川、易信CEO胡琛等人之外,还有与庄莉组合成互联网圈中有名神仙眷侣的网易有道CEO周枫。彼时,以第一名成绩在清华大学计算机系取得本硕士学位之后,庄莉进入美国加州伯克利大学并获得博士学位,期间她参与了网易有道的创建。毕业后先后在微软研究院、雅虎北京研究院、猎豹移动、蔚来任职。

在互联网领域摸爬二十载,庄莉一直在寻找以程序员为发动机的创新领域。在她看来,现在还处于智能手机黑莓时代的汽车领域,未来的整个走向还有很多不确定性,而它覆盖车端、云端、用户端等全新的软件研发方式,正是她想要的以技术为驱动且可以收获满满成就感的领域。在此之下,2019年,庄莉决定加入镁佳科技,怀着以“软件改变世界”的梦想,旨在变革汽车的软件开发方式,让车里没有难写的软件!

【小提示】点击下方👇 查看专访视频



选择计算机只是偶然事件,但成为程序员何其幸运!


《程序员》:你是从什么时候开始编程的?

庄莉:我最早接触编程是在成都七中上高中的时候,这是一所培养学生多样性发展的学校。还记得那时成都七中专门设立了一个信息学小组,面向所有学生开放,主要教BASIC、Pascal等基础语言方面的内容。我当时觉得比较有意思,于是就加入了这个小组并参加了几节兴趣课,不过,后来在参加各种竞赛时,我并没有朝着信息学这个方向走,反而经常参加一些数学、物理竞赛,这些竞赛中或多或少也会接触到部分编程,而这也是我编程的启蒙阶段。

要论及真正开始编写大量的程序则是在高中毕业进入清华大学后,从大学二年级起,我开始编写更多的程序,并用程序实现更多的东西。

《程序员》:从成都七中到清华,你和许多同学/校友(如网易有道CEO周枫、搜狗CEO王小川)都走上了互联网的道路,是什么促使你们做出了相同的选择?

庄莉:事实上,我曾经想学的专业是建筑,因为我的父亲是土木工程专业出身,受其影响,我一直对力学建筑方面感兴趣。不过,在一次全国物理竞赛得奖后,清华大学的老师让我开始选择专业,当我将想要选择建筑系的想法分享给老师时,他说不行,因为建筑系需要美术特招生,而我不符合这一点。

因此,我直接问道:“还有哪个专业是高考招生考分最高的?”老师回答道,“那只有计算机和电子专业。

在我看来,计算机与我喜欢的数学之间的关系更为紧密,所以我当时仅花了十几分钟的时间就做了一个非常临时的决定,挑了一个招生时性价比最高的专业——计算机。这一点,和周枫完全不同,他是从小就喜欢计算机,而我是在机缘巧合之下,开启了计算机之路。

《程序员》:数学对编程有怎样的影响?

庄莉:我觉得数学是这个世界上最重要的基础工具之一,因为它培养的其实是一种思维方式。曾有人说过,数学是一种锻炼思维的体操,它会培养你从题面上找到线索,然后有理有据地分析出不同的方法,进而逐个尝试去将线索打开,因此数学特别像是一种解密游戏。

数学的思维方式与编程非常像,编程的本质也是首先设立一个目标,再去思考如何去构建整个程序架构,并通过较为高效的方式将其实现。

《程序员》:从一个程序员成长为企业高层,再到创业者,这一路走来最快乐的时刻是什么?

庄莉:我觉得我每天都挺快乐的,我有一个观点就是:最快乐的时候一定是今天。其实人这一辈子总是有好的时光和不好的时光,但它们都会过去。英国前首相劳合·乔治曾说过,“当你关门时,也会将过去的一切留在后面,不管是美好的成就,还是让人懊恼的失误,然后,你又可以重新开始。

《程序员》:当程序员的身份转变为创业者时,需要补齐哪些不足?

庄莉:如果能够安心地做一辈子程序员,我会觉得很幸福,但生活有时由不得自己。我在互联网行业从事多年,转行进入汽车行业,其中一个重要原因是我认为很多场景下互联网产品中的技术占比已经没有那么重要,更为重要的是模式创新。举例说明,做一款优秀的社交类产品,后续是否能支持百万亦或是千万量级的用户,属于一个技术问题,但这款社交产品能否成功,很大程度上取决于其中填充的内容,而这属于运营工作,所以在这款产品中,它的发动机不是程序员,而是其他。

因此,我想追求一种能够以技术为核心驱动的环境,由此进入了汽车软件行业,开始构建汽车中软件基础设施和功能模块,旨在让汽车里没有难写的软件,并帮助别人写好软件,实现理想产品。朝着这个方向,我坚信“Best engineer can change the world”。为了实现这一梦想,我从毕业后进入很多公司工作到自己出来创业,期间除了编码之外,也承担了更多的责任,如肩负公司运转所需的融资、组织架构管理、运营等工作。

我觉得人这一辈子是一个没有选择的过程,当时代浪潮推着你要承担更多责任的时候,别认怂也别躲。

让车里没有难写的软件


《程序员》:在汽车行业和在互联网行业做软件,有哪些不一样的地方?开发体系和开发难度有怎样的差别?

庄莉:回顾过往,在互联网发展历程中,PC互联网时代属于硬科技,而后出现的移动互联网属于模式创新驱动,这对程序员其实并不友好,因为此时更多开发者需要考虑的应该是在资本催促下如何让自己的产品量级更大,并通过运营建立行业壁垒。这个过程中,程序员真的没有那么重要。

而汽车行业在我的理解中,只要技术做得好,体验就可以做上去,正因此,我特别想要进入汽车行业,但当时我并不是太懂汽车机械部分的结构及原理,于是我就进入了蔚来,从事与汽车软件、汽车电子架构相关的一些事情。

当打开汽车领域的大门,我发现这里写软件与在互联网行业写软件的方式有很大不同:

  • 缺乏底层工具的支持。互联网行业经过了多年发展,已经沉淀出很多标准的模块、开源项目等等。与之形成对比的是,在汽车行业中开发并没有太多的工具可用。因此我创业的核心想法就是要去做汽车行业的软件基础设施建设,让每一个想要在汽车中实现创新用户体验的开发都有支撑;

  • 碎片化问题较为严重。互联网行业基本硬件设施的碎片化不严重,比如服务器端会有一些标准的服务器体系构架、手机端也有标准,但是汽车行业各自为营,并没有统一标准;

  • 更多的兼容、安全要素需要考虑。汽车安全与生命息息相关,其内部的很多安全零部件历史非常悠久,因此在做开发时,需要考虑的是在兼容历史安全功能的情况下,如何带来创新的用户体验。其中,最难的地方首先是要懂得汽车原有的电子电气架构(EEA),了解原来供应链体系中其他零部件是如何与它进行工作的 。

正因此,我认为整个汽车行业开源生态和土壤相对而言还没有那么成熟,它的软硬件基础设施发展还需要一定的时间。

《程序员》:在基础设施方面,现在镁佳科技进展如何 ?

庄莉:镁佳科技现在几乎完成了汽车上半车身中所有智能化零部件,另外也正在逐步覆盖智能驾驶领域。

我们当前的想法是先完成行业里面需求量最大的部分,即域控制器、车联网云端、数字座舱 等。如果我们把上述的技术问题解决好,可以大幅提升用户在用车时的体验。因此在过去两年间,我们首先覆盖车辆的基础设施部分,从最初十几个基础设施模块到现在几百个车端、云端Paas接口。值得注意的是,最基础的部分一定要把整个软件的技术架构和汽车里的体系结构做好,只有将它们做好,才可以持续迭代和增加这样的基础设施。

《程序员》:镁佳科技在车联网云端这一块是怎么做的?

庄莉:如果从云端看,其实也是分层的,它包含了IaaS、PaaS、SaaS等。因为我们没有办法确认车企最终会选择哪种云平台,因此我们主要是站在了第三方为车企服务的角度来设计产品。镁佳科技提供的架构方便在所有的云边端部署,也提供了各种云边端部署的基础设施的版本。

《程序员》:在汽车智能化时代,一方面随着汽车软件越来越多,如何确保它的可靠性和安全性,另一方面随着汽车智能化功能的增多,如何解决算力成本、芯片等问题?

庄莉:汽车安全翻译为英文可分为两种,一种是safety,一种是cyber security。

  • safety指的是传统车的功能安全,如通过很多保障机制,保障汽车在最极端的情况下油门、刹车等硬件正常运转;

  • cyber security指的是在计算机中的安全,即当设备联网之后,在为自己提供便利的同时,防止他人通过这道门进来也是一件很重要的事情。

首先,在车里解决软件质量的最根本办法是运用标准化基础设施,因为标准的模块和基础设施是经过不断地打磨和验证出来的,后续在此基础上搭建或开发新功能时,基础设施出现问题的概率非常小。

其次,提高测试效率。在汽车领域,如果使用手工测试远远赶不上开发的速度,亟需一款自动化工具。今年,我们也会有相应的一些标准化产品提供给车企,去解决他们测不过来的问题,也可以帮助车企将测试效率提升100倍。

《程序员》:基于镁佳科技的服务,车企在做数字化转型时,是否需要自己去补足软件能力?

庄莉:事实上,车企最后与互联网公司一样,其核心发动机还是产品设计和用户运营,因为这些产品最终是面向用户的,因此需要设计出好用的车出来,但这该如何实现?

这需要好的“斧头”等工具来完成。镁佳科技本质上是一家帮助车企完成效率工具的公司,通过镁佳科技的服务,车企可以完全把自己的重心放在终端消费者用户体验上,当他们有一个好的体验和商业模式时,可以运用工具快速实现它。这是一种互惠互利、共赢的合作模式。

《程序员》:Wintel联盟(Windows和Intel)和AA联盟(ARM和Android)分别定义了PC和智能手机的行业生态,你认为在智能网联汽车的时代,会有什么样的联盟?

庄莉:从个人角度来看,PC互联网、移动互联网与现在的汽车行业发展有很大不同:

第一,汽车并不是今天才被发明出来的新产品,但曾经无论是PC还是手机都属于当时时代的新鲜事物,因此现有的汽车逐渐成为智能网汽车的发展路径与从零起步的PC、手机发展路径有所不同;

第二,不同汽车之间的设计和硬件碎片化问题很严重。就汽车市场种类而言,汽车公司数量远超手机、PC公司。这样的竞争环境下,车除了需要具备智能化属性之外,还要具备设计属性,即在汽车拥有智能化之后,用户还是会综合续航、各种用车场景与体验来考量,此时,我们要非常合理地看待智能化在整个汽车中所占的比重。当然如果能够把智能化任务细无声地融入其中,这也很重要。

因此,智能网汽车时代究竟会不会形成像Windows和Intel的联盟,亦或是ARM和Android这样的联盟,我的答案是:不一定。

现在汽车行业还处于智能手机的黑莓时代,未来的整个走向其实还有很多不确定性。

《程序员》:你觉得距离迎来iPhone的时代还有多远?

庄莉:我认为现在的智能网汽车还属于启蒙时代。所谓的启蒙时代是指,不管是消费者还是制造商都已经认识到汽车需要关注用户体验,其背后也需要有很好的软件体验。

但是现在面向好的用户体验,每家都有很多不同的解题方法。譬如,曾经辉煌一时的黑莓、诺基亚手机的解决方法是全链条,其将设备里面的硬件或软件都由自己团队去完成,但后来包括iPhone、Android等应用平台其实都是分层的,并不是所有层面都由自己来实现。如,研发一款游戏时,大家可以通过使用Unity引擎来实现游戏开发底层一些技术能力。不过,现在汽车行业还没有发展到这种阶段,我们公司就是想要成为汽车领域一家做基础建设的公司。

未来三年,汽车会走向一个什么样的终局?我觉得各种可能性都有,但是我相信智能化这道题不止一个解题方法,其中一个解决方法是现在我们看到全链条软件团队,即车企的全自研之路。同时,我们还看到一条不同路径、同样优秀甚至更优的解题方法,这就是当下我们研发的软件基础设施和车企自研的控制应用软件联合开发的合作模式。


汽车行业需要什么样的开发者?


《程序员》:汽车行业招聘工程师是以什么专业为主?

庄莉:我经常开玩笑说道,“进入了汽车行业并开始接触招聘之后,我才发现国内原来有这么多所大学和专业都是我之前没有听过的。”侧面来看,在一个行业发展的过程中,它会吸纳各种各样背景的人才。

不过,我认为最会写程序的程序员大多集中在了互联网行业,这一点有些可惜,因为现在很多程序员有些被眼前所看到的东西给圈住了。其实,世界上还有很多非互联网行业,不仅是汽车领域,也有其他可以写出很有意思程序的行业。

《程序员》:在汽车行业发展迅猛的今天,对于想要进入汽车行业的互联网开发者你有什么样的建议?

庄莉:汽车领域中软件跨度非常大,如底层在板级上的驱动、内核,以及在单片机上的嵌入式编程,通常要求程序员学会C/C++;往上层是自动驾驶、AI技术应用、车联网云端和数字座舱上的应用开发,这一层与互联网之间的联系更为紧密,原来负责服务器后台开发的程序员,同样可以轻松上手车联网后台开发工作;如果涉及汽车的域控制器及更为底层的产品时,移动互联网人才在跨行业时或面临一定的挑战。

相较而言,我认为AI程序员进入汽车软件行业跨度不大,但是AI与部署方向是非常有跨度的,因为当跨行业时,需要针对一个特定的硬件,特别是Soc芯片进行优化,这需要开发者既要懂CPU架构,又要懂计算机体系结构、AI算法。

《程序员》:你认为优秀的汽车软件开发者应该具备哪些素质?你会用哪些点去吸引他们来加入汽车行业?

庄莉:程序员其实是一群心思单纯、内心敏感的人。他们很纯粹,喜欢用代码去实现各种各样的东西。我们公司是做工具类的,又与现在蓬勃发展的行业密切相关,作为一家技术驱动型的公司,以程序员、技术人员为发动机,在这里如果想要专心去做一些帮助别人提升开发效率、适配效率的事情,会收获满满地成就感。

对于很多技术人而言,如果是喜欢做开发工具性质的,喜欢做这种基础模块性质的,我们公司是一个特别好的环境和土壤。

《程序员》:镁佳科技的宗旨是让车里没有难写的软件,最终是否是以低代码的方式为车企提供服务?

庄莉:本质上,我们是将一些共性的东西统一为标准模块,然后让车企通过少量的代码即可实现理想中的用户体验。从思想和方法论上来看,我们的服务与低代码非常接近。但是,我们不追求那种一行代码都不写的模式,因为如果追求这个会牺牲掉很多如运行效率的东西。

《程序员》:在这样的一套工具下,对于车企而言,需要配备什么样的工程师?

庄莉:我觉得配备能够很好地理解产品体验的工程师已足够,因为只有这些工程师很好地理解车企自己的产品人员所设计出来的交互逻辑和用户体验,包括车里通信等体验逻辑、业务逻辑,才能够带来更好的体验。

《程序员》:你平常会看什么书?对于想要从事汽车行业的开发者,有什么样的建议?

庄莉:我在毕业之后就不太爱看与编程相关的书,因为现实中,需要解决的都是实际的问题,而这类问题的解决方案,往往可以通过一些技术社区如国外的Stack Overflow、国内的CSDN来寻找技术资料,在这里,也可以和很多技术专家进行交流与讨论。同时,计算机领域是一个发展迅速的行业,相较而言,书籍跟不上行业最新的技术迭代,正如现在还未出现一本专门讲解汽车软件开发的书,我倒是非常希望有这样的一本书出现。不过,通过网络上的技术资料来学习也是一种比较好的方法。

当然,近期我在公司内部也推荐了一本书——《代码整洁之道》。正如其名,代码的整洁度、质量对于做基础设施的我们而言非常重要,而且对代码存在“龟毛精神”,并不是所有团队都能坚持的,因此,我们在团队内必须要从理念、价值观上进行推崇与发扬,因此我推荐了这本书。

《程序员》:为什么会说日后如果退休了,就写开源项目去?

庄莉:我很喜欢写程序这件事情,因此我想等没有那么多一定要做的事情时,就去把没有写够的代码写够了,之所以说等到退休之后想做开源项目,其实也是我想把写程序这件事情继续走下去,让自己写代码写到够。

本文出自《新程序员·新数据库时代& 软件定义汽车》,即将正式上市!


2018 年图灵奖得主、深度学习三巨头之一Yann LeCun(杨立昆),2020年图灵奖得主、龙书《编译原理》作者Jeffrey Ullman,英特尔副总裁Erez Dagan,阿里巴巴集团副总裁李飞飞,腾讯自动驾驶总经理苏奎峰……《新程序员》第二期,我们以「软件定义汽车 & 新数据库时代」为主题,邀请到国内外60余位学术领航人、技术大咖与产业先锋,为智能驾驶及数据库产业奉上酣畅淋漓的理论交锋及实战演练。

软件如何定义汽车?在IEEE 特约编辑Robert N. Charette的深度分析下,他将这一趋势刻画为“吞噬”!而英伟达则认为要将无人驾驶软硬件栈进行结合思考和实践。此外,“造车新势力三杰”——蔚来、小鹏、理想也纷纷到场,他们如何完成“电动化、网联化、智能化、共享化”的四化转型?我们拭目以待。

扫描下方二维码,添加小助手,即刻加入《新程序员002》「读者群」,抢先一步获取杂志最新资讯,精彩内容不再错过。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存